package vlms.controller;

import java.io.IOException;
import java.rmi.RemoteException;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
//import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import vlms.bean.Person;
import vlms.bean.PremiumCustomer;
import vlms.bean.SimpleCustomer;
import vlms.service.VLMSServiceProxy;

/**
 * Servlet implementation class ClearFine
 */
//@WebServlet("/ClearFine")
public class ClearFine extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public ClearFine() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doPost(request,response);
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		System.out.println("called");
		String message = null; 
		String destination = "/home.jsp";
		HttpSession session = request.getSession();
		Person oPerson = (Person) session.getAttribute("Person");
		String sPersonId = String.valueOf(oPerson.getPersonid());
		
		try
		 {
		
			float amount = Float.parseFloat(request.getParameter("fine"));
			if(amount < 0) {
				throw new NumberFormatException();
				
			}
			System.out.println("amount :" + amount);
			 VLMSServiceProxy proxy = new VLMSServiceProxy();
			 if(oPerson.getMembertype().equals("SC"))
			 {
				 proxy.clearFine(oPerson);
			 }
			 else
			 {
			 oPerson.setFine(0);
			 
			 proxy.clearFine(oPerson);
			 }
			 request.setAttribute("message", "You have succesfully cleared your fine");
			 destination="/home.jsp";
			 
			
		 }
		catch(NumberFormatException e) {
			destination = "/fine.jsp";
			 request.setAttribute("message", "Invalid Amount Value");
		}
		 catch(RemoteException re)
		 {
			 destination = "/fine.jsp";
			 request.setAttribute("message", re.getMessage());
			 re.printStackTrace();
		 }
		 catch(Exception e)
		 {
			 destination = "/fine.jsp";
			 request.setAttribute("message", e.getMessage());
			 e.printStackTrace();
		 }
		 
		 RequestDispatcher rd = this.getServletContext().getRequestDispatcher(destination);
			rd.forward(request, response);
	}

}
